A. Field of the Invention
The present invention relates generally to packet processing and, more particularly, to converting a first data path that carries up to P packets per processing cycle to a second data path that carries Q packets per processing cycle, where Q<P.
B. Description of Related Art
Packet processing systems, including any type of router, server or host that communicates using a packet-switching access mechanism, conventionally receive and process multiple packets in a single system cycle. A packet processing system may include a wide data path for receiving multiple packets in parallel during a single system cycle. Processing the packets at the rate they are received may require multiple instances of processing logic operating in parallel. If the packet processing system receive data path is N bytes wide, and the minimum packet that must be processed is M bytes, then P=N/M instances of the processing logic may be required to process all packets in a given system cycle. For example, conventional Cyclical Redundancy Checking (CRC) may be performed to determine packet data errors.
Multiple instances of processing logic in the packet processing system, however, may have many drawbacks, such as increased power demands and space requirements in the system. In Application Specific Integrated Circuits (ASICs), for example, multiple instances of processing logic utilize valuable area of the ASIC. Multiple elements operating in parallel also increase timing complexity in the system.
To decrease space and power requirements in the packet processing system, it would, thus, be desirable to reduce the instances of the logic required to process multiple packets received during a single system cycle. For example, reduction of the processing logic to, for example, a single instance would significantly reduce space and power requirements. Therefore, to enable the use of a single instance of packet processing logic, there exists a need for systems and methods that can convert a data path carrying P packets per cycle to a data path that carries only Q packets per cycle, such as Q=1 packet per cycle.